<?php
	require("frmCookie.php");
	require_once("Excel/reader.php");
	include_once("Spreadsheet/Excel/Writer.php");
	$iOpcion = $_GET[iOpcion];
	
	if($iOpcion == 3)
	{
		$sql = $_SESSION['mySQL'];
		if(transactionSQL($sql, true))
		{
			header("Location:devolucionStockAutomatica.php?iOpcion=4");
		}
		else
		{
			$mensaje = "No se pudieron devolver las partes.";
			$clase = "error";
			$iOpcion = 2;
		}
	}
	if($iOpcion == 4)
	{
		$mensaje = "Se han devuelto las partes correctamente.";
		$clase = "ok";	
	}
?>
<html>
	<head>
    	<?php
		require("frmHeader.php");
		?>
		<script language="javascript" src="scripts/ajax.js"></script>
		<script language="javascript" src="scripts/validar.js"></script>
        
        <script language="javascript">
		function validar()
		{
			campo = document.getElementById("file3");
			if (campo != null && campo.style.display != 'none' && campo.value == "")
			{
				alert("Por favor seleccione un archivo xls.");
				campo.focus();
				return false;
			}
			
			return true;
		}
		</script>
	</head>
	<body>
    	<table cellpadding="0" cellspacing="0" align="center" class="tablaPrincipal">
        	<tr>
            	<td align="center">
                	<?php
					require("frmSession.php"); 
					
					//Redirecciona a SINPERMISOS.PHP en caso de no tener permisos
					
					if (!(in_array(167000, $_SESSION[permisos])))
					{
					?>
					  <script language="JavaScript" type="text/javascript">
					  <!--
					  window.location.href = "sinPermisos.php"
					  //-->
					  </script>
					<?php
					}
					$titulo = "Devolución de Stock Automática.";
					
					?>
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<?php
					require("frmTitulo.php");
					?>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="menuPrincipal">
                    	<tr>
                        	<td>
								<?php
                                require("frmMenu.php");
                                ?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="tituloPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="texto" align="left"><?php echo $titulo; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="estadoPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="<?php echo $clase;?>" align="left"><?php echo $mensaje; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="contenedorPrincipal">
                    	<tr>
                        	<td align="">
                        		<?php
								if($iOpcion != 1 && $iOpcion != 4)
								{
									?>
                                    	<form name="frm" method="post" action="devolucionStockAutomatica.php?iOpcion=<?php 
											switch($iOpcion)
											{
												case 2:
												{
													echo "3";
													break;
												}
											}
											?>">
                                    <?php	
								}
								
                        		switch($iOpcion)
                        		{
                        			case 1:
									case 4:
                        			{
										$directory_self = str_replace(basename($_SERVER['PHP_SELF']),'',$_SERVER['PHP_SELF']);
										$uploadHandler = 'multiple.upload.processor.devolucionStockAutomatica.php';
										$max_file_size = 300000;
										
										?>
										<form name="frm" id="Upload" action="<?php echo $uploadHandler?>" enctype="multipart/form-data" method="post" onSubmit="return validar();">
											<table>
                                            	<tr>
                                                	<td colspan="2">
                                                    	Formato de Columnas del XLS: <b>| Código TANGO | Cantidad a Devolver | IMEI (si corresponde) |</b>
                                                    </td>
                                                </tr>
                                            	<tr>
                                                	<td>
                                                    	Archivo xls:	
                                                    	<input id="file3" name="file[]" type="file">
                                                    </td>
                                                </tr>
                                                <tr>
                                                	<td colspan="2" align="center">
                                                		<input name="cmdEnviar" value="Subir" type="submit" align="middle">
                                                    </td>
                                                </tr>
                                            </table> 
                                        </form>
                                        <?php
										break;
									}
									case 2://El archivo se subio correctamente y se listan las ordenes y su condicion
									{
										// ExcelFile($filename, $encoding);
										$data = new Spreadsheet_Excel_Reader();
										
										// Set output Encoding.
										$data->setOutputEncoding('CP1251');
										
										if($_SERVER['SERVER_NAME'] == "localhost")
										{
											$host = "/Users/fede/Sites/galander/informes/";
										}
										else
										{
											$host = "/var/www/html/galander/informes/";	
										}
										
										$data->read($host.'devolucionStock.xls');
										
										$datosParaElExcel = array();
										$titulos = array("Codigo TANGO", "Cantidad Devuelta", "IMEI", "Factura", "Remito", "Fecha");
										array_push($datosParaElExcel, $titulos);
										
										$archivo =  date("Y-m-d h:m:s")."StockDevuleto.xls";
										?>
                                        
										<table>
                                            <tr>
                                                <td align="center" colspan="100" style="padding-top:20px; padding-bottom:20px">
                                                    <h4>Resultados de la Importacion del Archivo xls</h4>
                                                    <a class="linkNuevo" href="informes/<?php echo $archivo;?>">Descargar</a>
                                                </td>
                                            </tr>
                                            <tr>
                                                <th class="listaHead">
                                                    <b> Código TANGO </b>
                                                </th>
                                                <th width="150" class="listaHead">
                                                    <b> Cantidad Disponible en Factura/Remito</b>
                                                </th>
                                                <th width="150" class="listaHead">
                                                    <b> Cantidad a Devolver de Factura</b>
                                                </th>
                                                <th width="150" class="listaHead">
                                                    <b> IMEI</b>
                                                </th>
                                                <th class="listaHead">
                                                    <b> Nro Factura </b>
                                                </th>
                                                <th class="listaHead">
                                                    <b> Nro Remito </b>
                                                </th>
                                                <th class="listaHead">
                                                    <b> Fecha </b>
                                                </th>
                                            </tr>
                                            <?php
                                            $result = array();
											$arrayCodigosTango = array();
                                            
                                            for ($i = 0; $i <= $data->sheets[0]['numRows']; $i++) 
                                            {
												$cantidad = $data->sheets[0]['cells'][$i][2];
												for ($j = $i+1; $j <= $data->sheets[0]['numRows']-1; $j++) 
												{
													if(strtoupper($data->sheets[0]['cells'][$i][1]) == strtoupper($data->sheets[0]['cells'][$j][1]))
													{
														if($data->sheets[0]['cells'][$i][3] != 0)
														{
															//Si es una Placa o un Equipo
															$cantidad = 1;
															break;
														}
														$cantidad += $data->sheets[0]['cells'][$j][2];	
													}
												}
												
												if($data->sheets[0]['cells'][$i][3] != '')
												{
													if($imeis == '')
													{
														$imeis = "'".$data->sheets[0]['cells'][$i][3]."'";
													}
													else
													{
														$imeis .= ", '".$data->sheets[0]['cells'][$i][3]."'";
													}
												}
												
												if(!in_array($data->sheets[0]['cells'][$i][1], $arrayCodigosTango))
												{
													array_push($arrayCodigosTango, $data->sheets[0]['cells'][$i][1]);
													$registros = array("codigoTango"=>$data->sheets[0]['cells'][$i][1], "cantidad"=>$cantidad, "imei"=>$data->sheets[0]['cells'][$i][3]);
												}
												
                                                array_push($result, $registros);
                                            }
											                                            
                                            foreach($result as $value)
                                            {
                                                if($codigosTango == '')
                                                {
                                                    $codigosTango = "'".$value['codigoTango']."'";
                                                }
                                                else
                                                {
                                                    $codigosTango .= ", '".$value['codigoTango']."'";
                                                }
                                            }
                                            
                                            $mySQL = "(select s.idStock, s.idParte, p.codigoTango, sum(s.cantidad) as cantidad, s.imei, s.fecha, date_format(fecha, '%d/%m/%Y') as fechaIngreso, nroFactura, nroRemitoLlegada from stock s join partes p on s.idParte = p.idParte join tipospartes tp on p.idTipoParte = tp.idTipoParte where p.codigoTango in ($codigosTango) and (tp.nombre <> 'Placa' and tp.nombre <> 'Equipo') group by idParte, fecha, nroFactura having cantidad > 0 order by idParte, fecha desc)";
											
											$mySQL .=" union all (select * from (select s.idStock, s.idParte, p.codigoTango, s.cantidad, s.imei, s.fecha, date_format(fecha, '%d/%m/%Y') as fechaIngreso, nroFactura, nroRemitoLlegada from stock s join partes p on s.idParte = p.idParte join tipospartes tp on p.idTipoParte = tp.idTipoParte where s.imei in ($imeis) and (tp.nombre = 'Placa' or tp.nombre = 'Equipo') and cantidad = 1 order by idParte, fecha desc) t group by imei order by idParte, fecha desc) order by idParte, fecha desc";
                                            //echo $mySQL;
                                            
                                            $resultBD = readSQL($mySQL);
											
                                            $fila = 0;
                                            foreach($resultBD as $valueBD)
                                            {
												$idStock = $valueBD['idStock'];
                                                $cantidadDisponibleFactura = $valueBD['cantidad'];
                                                $nroFactura = $valueBD['nroFactura'];
												$imei = $valueBD['imei'];
                                                $nroRemitoLlegada = $valueBD['nroRemitoLlegada'];
                                                $fecha = $valueBD['fechaIngreso'];	
                                                    
                                                if($idParte != $valueBD['idParte'] || $imei <> 0)
                                                {
                                                    $fila++;	
                                                    
                                                    $idParte = $valueBD['idParte'];
                                                    $codigoTango = $valueBD['codigoTango'];
                                                    
                                                    foreach($result as $value)
                                                    {
                                                        if(strtoupper($value['codigoTango']) == strtoupper($codigoTango))
                                                        {
                                                            $cantidadAEliminar = $value['cantidad'];
                                                            break;
                                                        }
                                                    }
                                                }
                                                
                                                if($cantidadDisponibleFactura >= $cantidadAEliminar)
                                                {
                                                    $cantidadAEliminarFactura = $cantidadAEliminar;
                                                    $cantidadAEliminar = 0;
                                                }
                                                else
                                                {
                                                    $cantidadAEliminarFactura = $cantidadDisponibleFactura;
                                                    $cantidadAEliminar -= $cantidadAEliminarFactura;
                                                }
                                            
                                                if($fila%2==0)
                                                    $class = "par";
                                                else
                                                    $class = "impar";
                                                
                                                echo '<tr>';
                                                    echo "<td class='$class'>";
                                                        echo $codigoTango;
                                                    echo '</td>';
                                                    echo "<td align='right' class='$class'>";
                                                        echo $cantidadDisponibleFactura;
                                                    echo '</td>';
                                                    echo "<td align='right' class='$class'>";
                                                        echo $cantidadAEliminarFactura;
                                                    echo '</td>';
													echo "<td align='right' class='$class'>";
                                                        echo $imei;
                                                    echo '</td>';
                                                    echo "<td align='right' class='$class'>";
                                                        echo $nroFactura;
                                                    echo '</td>';
                                                    echo "<td align='right' class='$class'>";
                                                        echo $nroRemitoLlegada;
                                                    echo '</td>';
                                                    echo "<td align='right' class='$class'>";
                                                        echo $fecha;
                                                    echo '</td>';
                                                echo '</tr>';
												if($cantidadAEliminarFactura > 0)
												{
													$sql .= "update stock set cantidad = if(cantidad = 0,0,cantidad-$cantidadAEliminarFactura) where idStock = $idStock;";
													$filaParaElExcel = array();
													array_push($filaParaElExcel, $codigoTango);
													array_push($filaParaElExcel, $cantidadAEliminarFactura);
													$imei = ($imei==0)?'':$imei;
													array_push($filaParaElExcel, $imei);
													array_push($filaParaElExcel, $nroFactura);
													array_push($filaParaElExcel, $nroRemitoLlegada);
													array_push($filaParaElExcel, $fecha);
													
													array_push($datosParaElExcel, $filaParaElExcel);
												}
                                            }
											
											// create empty file
											if($_SERVER['SERVER_NAME'] == "localhost")
											{
												$host = "/Users/fede/Sites/galander/informes/";
											}
											else
											{
												$host = "/var/www/html/galander/informes/";	
											}
											$excel = new Spreadsheet_Excel_Writer($host . $archivo);
											
											// add worksheet
											$sheet =& $excel->addWorksheet('Hoja 1');
											
											$rowCount=0;
											foreach ($datosParaElExcel as $row) 
											{
												for($colCount=0; $colCount<sizeof($row); $colCount++) 
												{
													$format =& $excel->addFormat();
													if($rowCount == 0)
													{
														$format->setFgColor('black');
														$format->setColor('white');
														$format->setBold();
														$format->setAlign('center');
													}
													else if($rowCount%2==0)
													{
														$format->setFgColor('silver');
													}
																					
													$sheet->writeString($rowCount, $colCount, $row[$colCount], $format);                       
												}  
											  // get cell coordinates
												$start = Spreadsheet_Excel_Writer::rowcolToCell($rowCount, 1);
												$end = Spreadsheet_Excel_Writer::rowcolToCell($rowCount, (sizeof($row)-1));
												 
												$rowCount++;
											}
											
											// save file to disk
											$excel->close();

											$_SESSION['mySQL'] = $sql;
                                            ?>
                                            <tr>
                                                <td colspan="100" align="center">
                                                    <input name="cmdGuardar" value="Guardar" type="submit" align="middle">
                                                    <input name="cmdSalir" value="Salir" type="button" align="middle" onClick="window.top.location='devolucionStockAutomatica.php?iOpcion=1';">
                                                </td>
                                            </tr>
										</table>
										<?php
										break;
									}
                        		}
								if($iOpcion != 1)
								{
									?>
                                    	</form>
                                    <?php	
								}
                        		?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
	</body>
</html>